/*
 * ICodeIterator.h
 *
 *  Created on: 4 May 2010
 *      Author: Savramis Sartios
 */

#ifndef ITERATOR_H_
#define ITERATOR_H_
#include <string>
using namespace std;

class ICodeIterator{
public:
	/**
	 * Set the current pointer to the beginning
	 */
	virtual void	first()=0;

	/**
	 * Increase the current pointer +1
	 */
	virtual void	next()=0;

	/**
	 * Checks if the current pointer points inside the list
	 * \return true if pointer points inside the list
	 */
	virtual bool isDone()const=0;

	/**
	 * Returns the next course code of the list
	 * \return code the course code
	 * \throw  OutOfBound
	 */
	virtual string 		getCurrent()const=0;

	/**
	 * Set the list
	 * \param	code list
	 * \throw	NullPointer
	 */
};

#endif /* ITERATOR_H_ */
